package org.dromara.comm_lhz.service.impl;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.dromara.comm_lhz.entity.AsAuthenticationInformationEntity;
import org.dromara.comm_lhz.mapper.AsAuthenticationInformationHMapper;
import org.dromara.comm_lhz.service.AsAuthenticationInformationHService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.springframework.stereotype.Service;

import java.util.Objects;

/**
 * 认证信息服务实现类
 */
@Service
@AllArgsConstructor
public class AsAuthenticationInformationHHServiceImpl extends ServiceImpl<AsAuthenticationInformationHMapper, AsAuthenticationInformationEntity> implements AsAuthenticationInformationHService {

    private final AsAuthenticationInformationHMapper asAuthenticationInformationHMapper;

    /**
     * 分页查询认证信息
     *
     * @param pageQuery 分页查询参数
     * @return 返回分页后的认证信息实体
     */
    @Override
    public Page<AsAuthenticationInformationEntity> selAuthentication(PageQuery pageQuery) {
        // 创建分页对象
        Page<AsAuthenticationInformationEntity> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize());
        // 分页查询并返回结果
        return asAuthenticationInformationHMapper.selectPage(page, null);
    }

    /**
     * 根据ID更新认证信息
     *
     * @param asAuthenticationInformationEntity 要更新的认证信息实体
     * @return 返回更新操作影响的行数
     */
    @Override
    public int updateAuthenticationById(AsAuthenticationInformationEntity asAuthenticationInformationEntity) {
        // 检查ID是否不为空
        if (Objects.nonNull(asAuthenticationInformationEntity.getId())) {
            // 根据ID更新实体
            return asAuthenticationInformationHMapper.updateById(asAuthenticationInformationEntity);
        } else {
            // ID为空时抛出异常
            throw new RuntimeException("ID不能为空");
        }
    }

    /**
     * 保存新的认证信息
     *
     * @param asAuthenticationInformationEntity 要保存的认证信息实体
     * @return 返回插入操作影响的行数
     */
    @Override
    public int saveAuthentication(AsAuthenticationInformationEntity asAuthenticationInformationEntity) {
        // 插入新的认证信息实体
        return asAuthenticationInformationHMapper.insert(asAuthenticationInformationEntity);
    }

}
